/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.graficaluna.ui.otros;

import dto.ClienteDTO;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import com.graficaluna.service.otros.ServicioCliente;

/**
 *
 * @author ralf
 */
@ManagedBean(name="clienteBean")
@ViewScoped 
public class ClienteBean implements Serializable{
    
    private List<ClienteDTO> listaClientes;    
    private String mensajeExito;
    private ClienteDTO cliente= new ClienteDTO();
    private String cadenaBusqueda;
    private boolean mostrarForm;
   

    @PostConstruct
    public void listar() {
      ServicioCliente service = new ServicioCliente();
      List<ClienteDTO> list = service.listarClientes();
      setListaClientes(list);
    }
    
    public String iniciar() {
        return "/views/clientes/mantCliente.xhtml?faces-redirect=true";
    }
    
    public void verFormulario(ClienteDTO p) {  
        setMostrarForm(true);
        if (p != null) {          
            setCliente(p);            
        }
    }
    
    public void buscar() { 
        ServicioCliente service = new ServicioCliente();
        List<ClienteDTO> list = service.buscarClientesPorFiltro(this.cadenaBusqueda);
        setListaClientes(list);       
    }
     
    public String eliminar(ClienteDTO p) {       
       ServicioCliente service = new ServicioCliente();
       service.eliminarCliente(p.getIdCliente());
       return iniciar();
    }
    
    private void limpiarFormulario() {
       setCliente(null);
    }
    
    public void grabar() {
        ServicioCliente service = new ServicioCliente();
        service.grabarCliente(cliente);
        FacesContext.getCurrentInstance().addMessage("idCliente", new FacesMessage(FacesMessage.SEVERITY_INFO,"Se grab&#243; correctamente", ""));       
        limpiarFormulario();        
    }
        
    
    //<editor-fold defaultstate="collapsed" desc="setters and getters">
   
    /**
     * @return the mensajeExito
     */
    public String getMensajeExito() {
        return mensajeExito;
    }

    /**
     * @param mensajeExito the mensajeExito to set
     */
    public void setMensajeExito(String mensajeExito) {
        this.mensajeExito = mensajeExito;
    }
    
    /**
     * @return the listaClientes
     */
    public List<ClienteDTO> getListaClientes() {
        return listaClientes;
    }

    /**
     * @param listaClientes the listaClientes to set
     */
    public void setListaClientes(List<ClienteDTO> listaClientes) {
        this.listaClientes = listaClientes;
    }    
    
    /**
     * @return the cadenaBusqueda
     */
    public String getCadenaBusqueda() {
        return cadenaBusqueda;
    }

    /**
     * @param cadenaBusqueda the cadenaBusqueda to set
     */
    public void setCadenaBusqueda(String cadenaBusqueda) {
        this.cadenaBusqueda = cadenaBusqueda;
    }
    
    /**
     * @return the cliente
     */
    public ClienteDTO getCliente() {
        return cliente;
    }

    /**
     * @param cliente the cliente to set
     */
    public void setCliente(ClienteDTO cliente) {
        this.cliente = cliente;
    }
    
    /**
     * @return the mostrarForm
     */
    public boolean isMostrarForm() {
        return mostrarForm;
    }

    /**
     * @param mostrarForm the mostrarForm to set
     */
    public void setMostrarForm(boolean mostrarForm) {
        this.mostrarForm = mostrarForm;
    }

    
    //</editor-fold>

   

   
}
